package com.tengol.demo.design.pattern.creational.builder;

/**
 * 抽象建造者：构建课程的公共接口
 * 比如：每一门课程的构建元素包括课程名称、课程PPT、课程视频、课程手记、课程问答等；
 * 依次构建了课程的上述元素后，才能创造出一门完整的课程，才可以对外销售；
 *
 * @author dongrui
 * @date 2019/03/01
 */
public interface CourseBuilder {
    /**
     * 创建课程部件
     */
    void buildCourseName(String courseName);
    void buildCoursePPT(String coursePPT);
    void buildCourseVideo(String courseVideo);
    void buildCourseArticle(String courseArticle);
    void buildCourseQa(String courseQa);
    /**
     * 创建课程
     */
    Course makeCourse();
}
